package com.zhiyou.aifeng.common_ui.view

import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Rect
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView

/**
 * TextView实现文字滚动需要以下几个要点：
 * 1.文字长度长于可显示范围：android:singleLine="true"
 * 2.设置可滚到，或显示样式：android:ellipsize="marquee"
 * 3.TextView只有在获取焦点后才会滚动显示隐藏文字，因此需要在包中新建一个类，继承TextView。
 * 重写isFocused方法，这个方法默认行为是，如果TextView获得焦点，方法返回true，失去焦点则返回false。
 * 跑马灯效果估计也是用这个方法判断是否获得焦点，所以把它的返回值始终设置为true
 * 4.复写onFocusChanged(),并且里面什么也不做
 */
class MarqueeTextView : AppCompatTextView {

    constructor(context: Context) : super(context)
    constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
    constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(context, attrs, defStyle)

    override fun isFocused() = true

    @SuppressLint("MissingSuperCall")
    override fun onFocusChanged(
        focused: Boolean, direction: Int,
        previouslyFocusedRect: Rect?
    ) {}

}